/*
 * PreferenceStore.java
 *
 * Created on 2008/07/20 +0900
 *
 * $Revision: 33 $
 * $Date: 2008-07-27 15:31:44 +0000 (Sun, 27 Jul 2008) $
 */

package org.gikolet.framework.preference;

/**
 * @author Tetsutaro (latest modification by $Author: tetsutaro.ss $)
 * @version $Revision: 33 $ $Date: 2008-07-27 15:31:44 +0000 (Sun, 27 Jul 2008) $
 */
public interface PreferenceStore {
    void addPropertyChangeListener(PropertyChangeListener listener);

    boolean contains(String name);

    void firePropertyChangeEvent(String name, Object oldValue, Object newValue);

    boolean getBoolean(String name);

    boolean getDefaultBoolean(String name);

    double getDefaultDouble(String name);

    float getDefaultFloat(String name);

    int getDefaultInt(String name);

    long getDefaultLong(String name);

    String getDefaultString(String name);

    double getDouble(String name);

    float getFloat(String name);

    int getInt(String name);

    long getLong(String name);

    String getString(String name);

    boolean isDefault(String name);

    boolean needsSaving();

    void putValue(String name, String value);

    void removePropertyChangeListener(PropertyChangeListener listener);

    void setDefault(String name, boolean value);

    void setDefault(String name, double value);

    void setDefault(String name, float value);

    void setDefault(String name, int value);

    void setDefault(String name, long value);

    void setDefault(String name, String defaultObject);

    void setToDefault(String name);

    void setValue(String name, boolean value);

    void setValue(String name, double value);

    void setValue(String name, float value);

    void setValue(String name, int value);

    void setValue(String name, long value);

    void setValue(String name, String value);
}
